{
   "endPoints":[
      {
         "path":"/wordList.{format}/{wordListId}",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"wordListId",
                     "description":"ID of WordList to fetch",
                     "required":true,
                     "paramType":"path"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"wordList",
                     "errorResponses":[
                        {
                           "reason":"Invalid ID supplied",
                           "code":400
                        },
                        {
                           "reason":"Not Authorized to access WordList",
                           "code":403
                        },
                        {
                           "reason":"WordList not found",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Fetches a WordList by ID",
               "open":false,
               "httpMethod":"GET"
            }
         ]
      },
      {
         "path":"/wordList.{format}/{wordListId}/deleteWords",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"wordListId",
                     "description":"ID of WordList to use",
                     "required":true,
                     "paramType":"path"
                  },
                  {
                     "description":"Words to remove from WordList",
                     "required":false,
                     "paramType":"body"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"void",
                     "errorResponses":[
                        {
                           "reason":"Invalid ID supplied",
                           "code":400
                        },
                        {
                           "reason":"Not Authorized to modify WordList",
                           "code":403
                        },
                        {
                           "reason":"WordList not found",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Removes words from a WordList",
               "open":false,
               "httpMethod":"POST"
            }
         ]
      },
      {
         "path":"/wordList.{format}/{wordListId}/words",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"wordListId",
                     "description":"ID of WordList to use",
                     "required":true,
                     "paramType":"path"
                  },
                  {
                     "name":"sortBy",
                     "description":"Field to sort by",
                     "required":false,
                     "allowableValues":"createDate,alpha",
                     "paramType":"query"
                  },
                  {
                     "name":"sortOrder",
                     "description":"Direction to sort",
                     "required":false,
                     "allowableValues":"asc,desc",
                     "paramType":"query"
                  },
                  {
                     "name":"skip",
                     "description":"Results to skip",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"limit",
                     "description":"Maximum number of results to return",
                     "required":false,
                     "paramType":"query"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"List[wordListWord]",
                     "errorResponses":[
                        {
                           "reason":"Invalid ID supplied",
                           "code":400
                        },
                        {
                           "reason":"Not Authorized to access WordList",
                           "code":403
                        },
                        {
                           "reason":"WordList not found",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Fetches words in a WordList",
               "open":false,
               "httpMethod":"GET"
            }
         ]
      },
      {
         "path":"/wordList.{format}/{wordListId}/words",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"wordListId",
                     "description":"ID of WordList to user",
                     "required":true,
                     "paramType":"path"
                  },
                  {
                     "description":"Words to add to WordList",
                     "required":false,
                     "paramType":"body"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"void",
                     "errorResponses":[
                        {
                           "reason":"Invalid ID supplied",
                           "code":400
                        },
                        {
                           "reason":"Not Authorized to access WordList",
                           "code":403
                        },
                        {
                           "reason":"WordList not found",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Adds words to a WordList",
               "open":false,
               "httpMethod":"POST"
            }
         ]
      },
      {
         "path":"/wordList.{format}/{wordListId}",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"wordListId",
                     "description":"ID of WordList to update",
                     "required":true,
                     "paramType":"path"
                  },
                  {
                     "description":"Updated WordList",
                     "required":false,
                     "paramType":"body"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"void",
                     "errorResponses":[
                        {
                           "reason":"Invalid ID supplied",
                           "code":400
                        },
                        {
                           "reason":"Not Authorized to update WordList",
                           "code":403
                        },
                        {
                           "reason":"WordList not found",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Updates an existing WordList",
               "open":false,
               "httpMethod":"PUT"
            }
         ]
      },
      {
         "path":"/wordList.{format}/{wordListId}",
         "description":"",
         "operations":[
            {
               "parameters":[
                  {
                     "name":"wordListId",
                     "description":"ID of WordList to delete",
                     "required":true,
                     "paramType":"path"
                  },
                  {
                     "name":"format",
                     "defaultValue":"json",
                     "description":"API response format",
                     "required":true,
                     "allowableValues":"json,xml",
                     "paramType":"path"
                  }
               ],
               "response":[
                  {
                     "valueType":"void",
                     "errorResponses":[
                        {
                           "reason":"Invalid ID supplied",
                           "code":400
                        },
                        {
                           "reason":"Not Authorized to delete WordList",
                           "code":403
                        },
                        {
                           "reason":"WordList not found",
                           "code":404
                        }
                     ],
                     "condition":"any"
                  }
               ],
               "summary":"Deletes an existing WordList",
               "open":false,
               "httpMethod":"DELETE"
            }
         ]
      }
   ],
   "models":[
      {
         "name":"wordList",
         "fields":[
            {
               "name":"name",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"id",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"type",
               "required":false,
               "paramType":"WordListType"
            },
            {
               "name":"description",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"userId",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"permalink",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"createdAt",
               "required":false,
               "paramType":"Date"
            },
            {
               "name":"username",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"updatedAt",
               "required":false,
               "paramType":"Date"
            },
            {
               "name":"numberWordsInList",
               "required":false,
               "paramType":"long"
            }
         ]
      },
      {
         "name":"wordListWord",
         "fields":[
            {
               "name":"userId",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"word",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"createdAt",
               "required":false,
               "paramType":"Date"
            },
            {
               "name":"username",
               "required":false,
               "paramType":"string"
            },
            {
               "name":"numberCommentsOnWord",
               "required":false,
               "paramType":"long"
            },
            {
               "name":"numberLists",
               "required":false,
               "paramType":"long"
            }
         ]
      }
   ]
}